In systems that display video programs, it is sometimes desirable to overlay alphanumeric characters onto a displayed image. These characters are typically referred to as on-screen display (OSD) information. Examples of the use of OSD information include closed captioning and subtitles for video programming. Another example is the display of a command name such as “PLAY” or “PAUSE” when a command button on a video display system is pressed.
In typical analog video systems, one known method of applying OSD information to a video display involves storing a set of alphanumeric characters and/or icons in a character read only memory (ROM). A typical character ROM may comprise 128 or 256 individual characters (or even more), both alphanumeric and graphic. In such systems, characters stored in the character ROM typically have sharply defined edges. This means that the contrast between the characters themselves and their background is very great. In many cases, this contrast ranges from a minimum pixel value to a maximum pixel value over the space of one picture element or pixel. In some applications, the sharp transitions create artifacts that are objectionable because they are visible on the display or because they create radio frequency energy that is disruptive to other parts of the system.
While character ROMs are effective in analog video systems, they present problems in digital video systems. One problem is that OSD generators in analog systems typically employ a pixel clock having a relatively low clock speed in the range of 3 MHz to 12 MHz. However, digital video systems require a much faster pixel clock. For example, the pixel clock in a digital OSD generator system may typically operate 3-4 times faster than the pixel clock in an analog OSD generator system. Some digital systems operate at a pixel clock speed of about 13.5 MHz, which is 4.5 times the typical minimum analog pixel clock speed of 3 MHz. Because character ROM size requirements are directly proportional to the pixel clock rate, a 3- or 4-fold (or more) increase in clock speed necessitates a proportional increase in the size of the character ROM. For example, when the pixel clock of a system employing a 12×18 character display is increased by a factor of four the character ROM must also be increased by a factor of four. Thus, a single character requiring 216 bytes of character ROM at the typical minimum analog pixel clock speed of 3 MHz requires at least 864 bytes of character ROM when the pixel clock speed is increased to the typical minimum pixel clock speed of 13.5 MHz for a digital system. In a 128-character set, the total character ROM requirement at the higher digital pixel clock speed is 110,592 bytes. The additional memory requirements make use of a typical character ROM scheme an undesirably expensive solution in a digital video system.
Known alternatives to the use of character ROM in digital systems are similarly expensive and/or produce undesirable results. One such alternative is a dual conversion scheme whereby digital video data and OSD characters themselves are converted into an analog format before insertion of the characters into the digital video stream. Analog filter techniques are then used to smooth the OSD characters before insertion. Unfortunately, this process requires an additional conversion back to digital format which introduces artifacts of its own. The costs associated with such a dual conversion scheme are significant. An efficient system and method of inserting OSD information into a digital video stream which reduces transition artifacts is desirable.